const fs = require('fs');
const path = require('path');

// 定义源目录和目标目录 - 使用软连接路径而不是绝对路径
const sourceDir = path.resolve('./content/posts/knowledge/images');
const targetDir = path.resolve('./public/images');

/**
 * 复制目录中的所有图片文件
 */
function copyObsidianImages() {
  try {
    // 检查源目录是否存在
    if (!fs.existsSync(sourceDir)) {
      console.error(`错误: 源目录不存在: ${sourceDir}`);
      process.exit(1);
    }

    // 确保目标目录存在
    if (!fs.existsSync(targetDir)) {
      fs.mkdirSync(targetDir, { recursive: true });
      console.log(`创建目标目录: ${targetDir}`);
    }

    // 读取源目录中的所有文件
    const files = fs.readdirSync(sourceDir);
    
    // 记录复制的文件数量
    let copiedCount = 0;

    // 复制每个文件
    files.forEach(file => {
      const sourcePath = path.join(sourceDir, file);
      const targetPath = path.join(targetDir, file);
      
      // 检查是否是文件而不是目录
      if (fs.statSync(sourcePath).isFile()) {
        // 复制文件
        fs.copyFileSync(sourcePath, targetPath);
        copiedCount++;
        console.log(`复制文件: ${file}`);
      }
    });

    console.log(`成功复制了 ${copiedCount} 个文件到 ${targetDir}`);
    
  } catch (error) {
    console.error(`复制文件时出错: ${error.message}`);
    process.exit(1);
  }
}

// 执行复制函数
copyObsidianImages();